Automatically branding topics using color

ABSTRACT

Embodiments of the invention automatically assign colors to topics in a topic database based on a respective topic&#39;s unique identifier within the topic database. One or more functions are applied to transform each topic&#39;s unique identifier into a respective color, for example by hashing the unique identifier string, and using the hash to index into an array of colors. Thus, content items pertaining to the same topic can be consistently branded with the same color in visual presentations to the user.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/136,326, filed on Dec. 20, 2013 which is incorporated by reference inits entirety.

BACKGROUND

Field of Disclosure

This disclosure relates generally to the presentation of content itemsto a user on a computing device and specifically to the use of color todistinguish topics of the content items.

Description of the Related Art

Many people use their computing devices to consume content. For example,it is common for people to read email, articles, blogs, books, and otherforms of content from their computing devices. Because of the extremeamounts of content that are available electronically, it is impossiblefor any person to consume it all. Thus, users tend to be selective interms of the content items that they decide to read.

To aid the user in deciding what to read, some content presentationsystems use color as a quick visual indicator to signal the topic towhich a content item pertains. After repeated exposure, users may cometo associate certain topics with certain colors. The color may become anidentifying mark (i.e., a brand) for the associated topic. However,typically the color applied to a topic is manually assigned, for exampleas the result of an editorial choice. Thus, when a new topic is added, anew color must be manually assigned to the topic.

SUMMARY

Embodiments of the invention automatically assign colors to topics in atopic database based on a respective topic's unique identifier withinthe topic database. One or more functions are applied to transform eachtopic's unique identifier into a respective color, for example byhashing the unique identifier string, and using the hash to index intoan array of colors. Thus, content items pertaining to the same topic canbe consistently branded with the same color in visual presentations tothe user.

Embodiments of the computer-readable storage medium storecomputer-executable instructions for performing the steps describedabove. Embodiments of the system further comprise a processor forexecuting the computer-executable instructions.

The features and advantages described in the specification are not allinclusive and, in particular, many additional features and advantageswill be apparent to one of ordinary skill in the art in view of thedrawings, specification, and claims. Moreover, it should be noted thatthe language used in the specification has been principally selected forreadability and instructional purposes, and may not have been selectedto delineate or circumscribe the inventive subject matter.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a high-level block diagram illustrating an embodiment of anenvironment for presenting content items on a client device.

FIG. 2 is a high-level block diagram illustrating an example computerfor implementing the entities shown in FIG. 1.

FIG. 3 is a block diagram illustrating a content color module inaccordance with an embodiment.

FIG. 4 is a flowchart illustrating a method of applying a consistentrespective color to content items associated with a respective topic inaccordance with an embodiment.

FIG. 5A-E illustrates examples of the use of a consistent color to branda topic within the user interface of a client application in accordancewith an embodiment.

The Figures (FIGS.) and the following description describe certainembodiments by way of illustration only. One skilled in the art willreadily recognize from the following description that alternativeembodiments of the structures and methods illustrated herein may beemployed without departing from the principles described herein.

DETAILED DESCRIPTION

FIG. 1 is a high-level block diagram illustrating an embodiment of anenvironment 100 for presenting content items on a client device 120. Theenvironment 100 includes a server system 110 and a client device 120connected by a network 101. Only one server system 110 and one clientdevice 120 are illustrated, but in practice there may be multipleinstances of each of these entities. For example, there may be thousandsor millions of client devices 120 in communication with several or manyserver systems 110.

The server system 110 selects and serves content items to the clientdevice 120. In some embodiments, the server system 110 is implemented asa single server, while in other embodiments it is implemented as adistributed system of multiple servers. The server system 110 includes acontent item database 111, a topic database 112, a content color module113, and a client interaction module 114.

The content item database 111 of the server system 110 stores contentitems for distribution to client devices 120. The content items may be,for example, news articles, photographs, blog postings, status updates,advertisements, or any other type of content items that may displayed ona client device 120.

The topic database 112 contains a comprehensive listing of topics of thecontent items. In one embodiment, the topic database 112 contains a listof entities, such as people, organizations, places, and other thingsthat may be the subject of content items and provides a group of anyknown aliases for each entity, including equivalents in many differentlanguages. For each topic, the topic database 112 provides a uniqueidentifier. Thus, in one implementation, regardless of the language inwhich a topic is expressed, the topic has the same unique identifier inthe topic database 112. The topic database 112 may be part of a largecollaborative knowledge base comprising structured data harvested frommany sources. In one implementation, the topic database is a Freebasedatabase available from GOOGLE INC. of Mountain View, Calif. The topicdatabase 112 need not be static. As new topics are added to the topicdatabase 112, each is assigned a new unique identifier which is storedin the topic database.

The content color module 113 accesses items from the content itemdatabase 111 to serve to the client device 120, identifies the topic ofthe content item, and determines the color to apply to visualpresentations of the content item. In some implementations, the contentcolor module 113 resides on the server system 110 as illustrated in FIG.1, and in other implementations the content color module 113 resides onthe client device 120, or the functionality of the content color module113 may be split among modules on the server system 110 and the clientdevice 120 in various ways. The operation of the content color module113 will be described in greater detail below with reference to FIGS.3-4.

The client interaction module 114 manages the interactions of the serversystem 110 with the client device 120. Specifically, the clientinteraction module 114 communicates content items to the client device120, and communicates the color determined by the content color module113 that is associated with a respective topic of each content item.

The client device 120 is a computing device, such as a desktop, laptop,or tablet computer, or a smart phone or other mobile computing device.The client device 120 is used by a user to access content items througha client application 121 for example for information or entertainmentpurposes.

The client application 121 is a software application, for examplerunning within the operating system of the client device 120. Thesoftware application contains program modules to implement thefunctionality described herein. Specifically, as illustrated in thisexample, the client application 121 includes a server interaction module122 and an information presentation module 123.

The server interaction module 122 of the client application 121 managesthe interactions of the client application 121 with the server system110. The server interaction module 122 communicates data between theclient device 120 and the server system 110 via the network 101. Theserver interaction module 122 sends requests for content via the network101 to the sever system 110. Additionally, the server interaction module122 receives content items and the color determined to be associatedwith a respective topic of each content item from the server system 110,either in response to requests from the client application 121 or inresponse to the server system 110 pushing content items to the clientapplication 121 without them being specifically requested.

The information presentation module 123 formats the content itemsreceived from the server system 110 for presentation on the clientdevice 120 to the user. The information presentation module 123 mayapply the color corresponding to the topic of each content item to therespective content item for display to the user. Examples of the use ofcolor to consistently brand content items pertaining to the same topicare described below with reference to FIGS. 5A-E.

The network 101 provides a communication infrastructure between theserver system 110 and the client device 120. The network 101 istypically the Internet, but may be any network, including but notlimited to a Local Area Network (LAN), a Metropolitan Area Network(MAN), a Wide Area Network (WAN), a mobile wired or wireless network, aprivate network, or a virtual private network.

FIG. 2 is a high-level block diagram illustrating an example computerfor implementing one or more of the entities shown in FIG. 1. Thecomputer 200 includes at least one processor 202 coupled to a chipset204. The chipset 204 includes a memory controller hub 220 and aninput/output (I/O) controller hub 222. A memory 206 and a graphicsadapter 212 are coupled to the memory controller hub 220, and a display218 is coupled to the graphics adapter 212. A storage device 208, aninput device 214, and network adapter 216 are coupled to the I/Ocontroller hub 222. Other embodiments of the computer 200 have differentarchitectures.

The storage device 208 is a non-transitory computer-readable storagemedium such as a hard drive, compact disk read-only memory (CD-ROM),DVD, or a solid-state memory device. The memory 206 holds instructionsand data used by the processor 202. The input interface 214 is atouch-screen interface, a mouse, track ball, or other type of pointingdevice, a keyboard, or some combination thereof, and is used to inputdata into the computer 200. In some embodiments, the computer 200 may beconfigured to receive input (e.g., commands) from the input interface214 via gestures from the user. Gestures are movements made by the userwhile contacting a touch-screen interface. For example, tapping aportion of the screen, touching a portion of the screen and thendragging the touched portion in a particular direction, etc. Thecomputers 200 monitors gestures made by the user and converts them intocommands (e.g., dismiss, maximize, scroll, etc.) The graphics adapter212 displays images and other information on the display 218. Thenetwork adapter 216 couples the computer 200 to one or more computernetworks, such as network 101.

The computer 200 is adapted to execute computer program modules forproviding functionality described herein. As used herein, the term“module” refers to computer program logic used to provide the specifiedfunctionality. Thus, a module can be implemented in hardware, firmware,and/or software. In one embodiment, program modules are stored on thestorage device 208, loaded into the memory 206, and executed by theprocessor 202.

The types of computer 200 used by the entities of FIG. 1 can varydepending upon the embodiment and the processing power required by theentity. For example, the server system 110 may include multiplecomputers 200 communicating with each other through a network to providethe functionality described herein. Such computers 200 may lack some ofthe components described above, such as graphics adapters 212 anddisplays 218.

FIG. 3 is a block diagram illustrating a content color module 113 of theserver system 110 in accordance with an embodiment. Although the contentcolor module 113 is described in this example as residing within theserver system 110, in another embodiment, the content color module 113may be included in the client application 121 on the client device 120or the functionality of the content color module 113 may be split amongmodules on the server system 110 and on the client device 120 instead.The content color module 113 includes a color store 301, a topicidentification module 302, and a color application module 303.

The color store 301 stores an array of colors to be associated with oneor more topics. Depending on the implementation, the number of colorsmay vary from a few dozen to many hundreds or thousands. In the casethat the number of topics exceeds the number of colors, colors may bereused for additional topics.

The topic identification module 302 analyzes the content item todetermine the primary topic of the content item. The topicidentification module 302 may parse the text of a content item toidentify entities discussed therein, analyze metadata and/or extracttags associated with the content item, or use any other technique knownto those of skill in the art for identifying the primary topic of acontent item. In one embodiment, when a content item is about multipletopics, each of the multiple topics is scored according to techniquesknown in the art for assessing the relevance of a topic to a contentitem, and the highest scoring topic is identified as the primary topicof the content item.

The color application module 303 determines the color associated withthe topic of a content item and applies the color to visualpresentations of the content item. The application of a consistent colorto a topic helps differentiate topics, allows the user to recallfavorite topics by color, and generally adds visual appeal to the userinterface. In one embodiment, the color application module 303determines the color associated with the topic of a content item byaccessing the unique identifier of the topic in the topic database 112.The color application module 303 applies one or more functions totransform the topic's unique identifier into a respective color, forexample by hashing the unique identifier string, and using the hash toindex into the array of colors in the color store 301, for instancewhere

$\begin{matrix}{{Index} = \frac{{{id}.{{hashCode}(\mspace{20mu})}}}{{number}\mspace{14mu} {of}\mspace{14mu} {colors}}} & {{Eq}.\mspace{11mu} (1)}\end{matrix}$

Variations of Eq. 1 may be used provided that the mapping between eachtopic's unique identifier to a respective color from the color store 301is consistently reproducible. This allows the color application module303 to operate even on newly added topics to the topic database 112without manual intervention. Provided the newly added topic isassociated with a unique identifier in the topic database 112, the newlyadded topic can be mapped automatically to one of the colors from thecolor store 301.

FIG. 4 is a flowchart illustrating a method of applying a consistentrespective color to content items associated with a respective topic inaccordance with an embodiment. This example method is described from theperspective of a content color module 113 of the server system 110performing the method, but in some variations, the content color module113 may instead reside within the client application 121 of the clientdevice 120, or the method may be performed by a combination of modulesfrom the server system 110 and the client device 120. In someimplementations, the steps are performed in an order other than theorder presented in FIG. 4, and in other implementations, additional oralternative steps may be performed.

In step 401, a topic of a content item is identified. For example, thetopic identification module 302 of the content color module 113 analyzesthe content item to determine the primary topic, as described above.

In step 402, a color associated with the identified topic is determinedbased on the topic's unique identifier in a topic database 112. Forexample, the color application module 303 of the content color module113 determines the color associated with the topic by accessing theunique identifier of the topic in the topic database 112 and applying atleast one function to transform the topic's unique identifier into arespective color. As described above, for example, the function may hashthe unique identifier string of the topic from the topic database 112,and use the result to index into the array of colors in the color store301.

In step 403, the color associated with the identified topic is appliedto visual presentations of the content item. For example, the colorapplication module 303 may apply the color associated with theidentified topic to icons, tags, texts, backgrounds, as an image tint,or any combination of these and/or may send instructions to theinformation presentation module 123 of the client application 121 todisplay visual presentations of the content item with the colorassociated with the identified topic.

In one variation of the method illustrated in FIG. 4, all content itemsrelating to all topics are displayed in a default color scheme (such asgrey) until a user has indicated an interest in following a topic, forexample by subscribing to it. At that point, color is applied to topicsthe user is following as a form of visual identity that helpsdifferentiate topics, allows the user to recall favorite topics bycolor, and generally adds visual appeal to the user interface.

In situations in which the systems discussed here collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity to control whether programs orfeatures collect user information (e.g., information about a user'ssocial network, social actions or activities, profession, a user'spreferences, or a user's current location), or to control whether and/orhow to receive content from the server system 110 that may be morerelevant to the user. In addition, certain data may be treated in one ormore ways before it is stored or used, so that personally identifiableinformation is removed. For example, a user's identity may be treated sothat no personally identifiable information can be determined for theuser, or a user's geographic location may be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser may have control over how information is collected about the userand used by the server system 110.

FIG. 5A-E illustrates examples of the use of a consistent color to branda topic within the user interface of a client application in accordancewith an embodiment. FIG. 5A illustrates an example of a user interface550 of the client application 121 of a client device 120 displaying alight blue icon 551 corresponding to the topic of photography. In thisexample, the light blue shade is associated with the topic of“photography” and can be used throughout the user interface 550 of theclient application 121 to consistently brand the topic. In FIG. 5B, thesame light blue shade has been used again to color the photography icon552, to tint an image 553 related to the photography topic, and as abackground color 554 of a news article about photography. FIG. 5Cillustrates the use of the same light blue shade as a background colorto a heading 555 identifying the topic of the photography article. FIG.5D illustrates the use of the same light blue shade as part of a tag 556that identifies the topic of a related content item. FIG. 5E illustratesthe use of the same light blue shade as part of an icon placed on top ofa tinted image 557 as an example variation of how a color associatedwith a topic may be used within the user interface 550 of the clientapplication 121. Many other variations are also possible.

Additional Configuration Considerations

Some portions of the above description describe the embodiments in termsof algorithmic processes or operations. These algorithmic descriptionsand representations are commonly used by those skilled in the dataprocessing arts to convey the substance of their work effectively toothers skilled in the art. These operations, while describedfunctionally, computationally, or logically, are understood to beimplemented by computer programs comprising instructions for executionby a processor or equivalent electrical circuits, microcode, or thelike. Furthermore, it has also proven convenient at times, to refer tothese arrangements of functional operations as modules, without loss ofgenerality. The described operations and their associated modules may beembodied in software, firmware, hardware, or any combinations thereof.

As used herein any reference to “one embodiment” or “an embodiment”means that a particular element, feature, structure, or characteristicdescribed in connection with the embodiment is included in at least oneembodiment. The appearances of the phrase “in one embodiment” in variousplaces in the specification are not necessarily all referring to thesame embodiment.

As used herein, the terms “comprises,” “comprising,” “includes,”“including,” “has,” “having” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a process,method, article, or apparatus that comprises a list of elements is notnecessarily limited to only those elements but may include otherelements not expressly listed or inherent to such process, method,article, or apparatus. Further, unless expressly stated to the contrary,“or” refers to an inclusive or and not to an exclusive or. For example,a condition A or B is satisfied by any one of the following: A is true(or present) and B is false (or not present), A is false (or notpresent) and B is true (or present), and both A and B are true (orpresent).

In addition, use of the “a” or “an” are employed to describe elementsand components of the embodiments herein. This is done merely forconvenience and to give a general sense of the disclosure. Thisdescription should be read to include one or at least one and thesingular also includes the plural unless it is obvious that it is meantotherwise.

Upon reading this disclosure, those of skill in the art will appreciatestill additional alternative structural and functional designs for asystem and a process for automated dictionary generation. Thus, whileparticular embodiments and applications have been illustrated anddescribed, it is to be understood that the described subject matter isnot limited to the precise construction and components disclosed hereinand that various modifications, changes and variations which will beapparent to those skilled in the art may be made in the arrangement,operation and details of the method and apparatus disclosed herein.

What is claimed is:
 1. A computer-implemented method of automaticallybranding a topic with color, the method comprising: identifying a topicof a content item; determining a unique identifier stored in a topicdatabase, the unique identifier associated with the identified topic ofthe content item; determining a color associated with the identifiedtopic based on the unique identifier of the topic in the topic database;and applying the determined color associated with the identified topicto textual objects and non-textual objects included in the content itemthat are associated with the identified topic.
 2. Thecomputer-implemented method of claim 1, wherein the content itemcomprises a news article, a photograph, a blog posting, or a statusupdate.
 3. The computer-implemented of claim 1, wherein identifying thetopic comprises analyzing the content item to determine a primary topicof the content item from among multiple topics in the content item. 4.The computer-implemented of claim 3, further comprising: identifying thetextual objects and non-textual objects included in the content item;determining for each of the textual objects and non-textual objects anassociated topic; and wherein the color associated with the identifiedprimary topic is applied to textual objects and non-textual objectshaving associated topics that match the identified primary topic.
 5. Thecomputer-implemented of claim 4, wherein determining for each of thenon-textual objects an associated topic comprises: analyzing at leastone of metadata or tags associated with the non-textual object todetermine the topic associated with the non-textual object.
 6. Thecomputer-implemented of claim 1, wherein non-textual objects include abackground of the content item or an image included in the content item.7. The computer-implemented of claim 1, wherein the topic databasecomprises a group of any known aliases for each topic and a uniqueidentifier for each topic.
 8. A computer program product comprising anon-transitory computer-readable storage medium storing executablecomputer program instructions for automatically branding a topic withcolor, the instructions executable to perform steps comprising:identifying a topic of a content item; determining a unique identifierstored in a topic database, the unique identifier associated with theidentified topic of the content item; determining a color associatedwith the identified topic based on the unique identifier of the topic inthe topic database; and applying the determined color associated withthe identified topic to textual objects and non-textual objects includedin the content item that are associated with the identified topic. 9.The computer program product of claim 8, wherein the content itemcomprises a news article, a photograph, a blog posting, or a statusupdate.
 10. The computer program product of claim 8, wherein identifyingthe topic comprises analyzing the content item to determine a primarytopic of the content item from among multiple topics in the content item11. The computer program product of claim 10, wherein the computerprogram instructions are executable to perform further steps comprising:identifying the textual objects and non-textual objects included in thecontent item; determining for each of the textual objects andnon-textual objects an associated topic; and wherein the colorassociated with the identified primary topic is applied to textualobjects and non-textual objects having associated topics that match theidentified primary topic.
 12. The computer program product of claim 11,wherein determining for each of the non-textual objects an associatedtopic comprises: analyzing at least one of metadata or tags associatedwith the non-textual object to determine the topic associated with thenon-textual object.
 13. The computer program product of claim 11,wherein non-textual objects include a background of the content item oran image included in the content item.
 14. A system for automaticallybranding a topic with color, the system comprising: a processor; and amemory storing executable code, the code when executed by the processorcauses the processor to perform steps comprising: identifying a topic ofa content item; determining a unique identifier stored in a topicdatabase, the unique identifier associated with the identified topic ofthe content item; determining a color associated with the identifiedtopic based on the unique identifier of the topic in the topic database;and applying the determined color associated with the identified topicto textual objects and non-textual objects included in the content itemthat are associated with the identified topic.
 15. The system of claim14, wherein the content item comprises a news article, a photograph, ablog posting, or a status update.
 16. The system of claim 14, whereinidentifying the topic comprises analyzing the content item to determinea primary topic of the content item from among multiple topics in thecontent item
 17. The system of claim 16, wherein the code when executedby the processor causes the processor to perform further stepscomprising: identifying the textual objects and non-textual objectsincluded in the content item; determining for each of the textualobjects and non-textual objects an associated topic; and wherein thecolor associated with the identified primary topic is applied to textualobjects and non-textual objects having associated topics that match theidentified primary topic.
 18. The system of claim 17, whereindetermining for each of the non-textual objects an associated topiccomprises: analyzing at least one of metadata or tags associated withthe non-textual object to determine the topic associated with thenon-textual object.
 19. The system of claim 17, wherein non-textualobjects include a background of the content item or an image included inthe content item.
 20. The system of claim 17, wherein the topic databasecomprises a group of any known aliases for each topic and a uniqueidentifier for each topic.